一、資料儲存位置
在記錄資料儲存的位置時,要清楚地告訴電腦你的資料要存在那裡,
畢竟你每搬一次東西,就會需要礦工,就會花錢 :(
1.Calldata:read only(僅供閱讀)。
2.Memory:會隨著你的function 生而生,死而死。
3.Storage:會隨著你的合約生而生,死而死。
二、合約宣告
contract helloworld{
// 這就是宣告一個 helloworld 的合約,然後這裡可以輸入一些可愛的合約內容
}
一定要記得把合約內容(也就是程式碼)撰寫在合約裡,否則程式一定會跳錯!
三、版本宣告
pragma solidity >=0.7.0 <0.9.0;`
// 意思是 0.7.0~0.9.0 之間的任何版本都可以執行這項合約。
-授權宣告
// SPDX-License-Identifier: GPL-3.0
// 如果不想要公開的話,可以把 GPL-3.0 改成 UNLICENSED。
-方法Function
function functionname(參數1, 參數2) 可見度 可變性 returns(回傳的資料) {
}
// 回傳資料可有可無,取決於你要或不要回傳。
// 可見度與可變性一定要宣告。
// 參數以及回傳值都可以是多個,要用逗號隔開。
// functionname 不可以用保留字。
function store(uint256 num) public {
number = num;
}
-可見度
• Private:私密的,不想被外面看到,也只能被自己呼叫。
• Public:公開的,可以被自己或外部的 function 呼叫。
• External:可以被外部合約直接呼叫,但不能被內部合約直接呼叫。
假如function叫做 x,不能直接呼叫 x,要呼叫 this.x()。
-State的可變性
• Pure:不會讀也不會寫 state。
• View:只讀不寫 state。
• Default:可讀也可寫 state。
四、參考來源
1.第一集:Solidity語法講解
2.Solidity
這章節把Solidity的內容講解完,下一章節我們要統整這週的學習內容。
書中第二十一天的語錄是:
恭喜讀者看完Solidity較進階的講解,也為日後要撰寫合約打下基礎。建立好合約環境是非常重要的一個歷程,恭喜大家都有基本的合約環境了,預祝大家之後合約撰寫順順利利!